home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / me39doc.arc / EMACS.RC < prev    next >
Encoding:
Text File  |  1987-07-22  |  12.4 KB  |  617 lines

  1. ;    EMACS.RC:    Standard micro Startup program
  2. ;            for MicroEMACS 3.9
  3. ;            (C)opyright 1987 by Daniel M Lawrence
  4. ;            Last Update: 07/11/87
  5.  
  6. set $discmd FALSE
  7. write-message "[Setting up....]"
  8.  
  9. ; If you screen "SNOWS", uncomment this line
  10. ;    set $flicker "TRUE"
  11.  
  12. ; If you are on an IBM-PC EGA card and want to force the
  13. ; screen to EGA mode, uncomment the following line
  14. ;    set $sres "EGA"
  15.  
  16. ;    ***** Rebind the Function key group
  17.  
  18. bind-to-key search-forward        FN;
  19. bind-to-key search-reverse        FN<
  20. bind-to-key hunt-forward        FN=
  21. bind-to-key hunt-backward        FN>
  22. bind-to-key execute-macro-1        FN?    ;Toggle Function key window
  23. bind-to-key execute-macro-2        FN@    ;Toggle Help window
  24. bind-to-key execute-macro-3        FNA    ;Toggle smooth paging
  25. bind-to-key execute-macro-4        FNB    ;Change editor mode
  26. bind-to-key save-file            FNC
  27. bind-to-key exit-emacs            FND
  28.  
  29. bind-to-key execute-macro-10        FNT
  30. bind-to-key execute-macro-11        FNU
  31. bind-to-key execute-macro-12        FNV
  32. bind-to-key execute-macro-13        FNW
  33. bind-to-key execute-macro-14        FNX
  34. bind-to-key execute-macro-15        FNY
  35. bind-to-key execute-macro-16        FNZ
  36. bind-to-key execute-macro-17        FN[
  37. bind-to-key execute-macro-18        FN\
  38. bind-to-key execute-macro-19        FN]
  39.  
  40. ;    Set Default Global modes
  41.  
  42. add-global-mode "blue"
  43.  
  44. ;    Toggle function key window display
  45.  
  46. 1    store-macro
  47.     !if %rcfkeys
  48.         !goto rcfoff
  49.     !endif
  50.  
  51. ;    toggle function key window on
  52.     save-window
  53.     1 next-window
  54.     !if &sequal $cbufname "emacs.hlp"
  55.         delete-window
  56.     !endif
  57.     !if ¬ &sequal $cbufname "Function Keys"
  58.         1 split-current-window
  59.         select-buffer "Function Keys"
  60.         add-mode "red"
  61.         !force 5 resize-window
  62.         &add × %rcmode 5 1 goto-line
  63.         1 redraw-display
  64.     !endif
  65.     set %rcfkeys TRUE
  66.     !force restore-window
  67.     !if &sequal $cbufname "Function Keys"
  68.         next-window
  69.     !endif
  70.     write-message "[Function key window ON]"
  71.     !return
  72.  
  73.     ;Toggle the function key window off
  74. *rcfoff
  75.     save-window
  76.     1 next-window
  77.     !if &sequal "Function Keys" $cbufname
  78.         delete-window
  79.     !endif
  80.     !force restore-window
  81.     write-message "[Function key window OFF]"
  82.     set %rcfkeys FALSE
  83. !endm
  84.  
  85. ;    Toggle HELP file onscreen
  86.  
  87. 2 store-macro
  88.     1 next-window
  89.  
  90.     ;Make sure the function key window isn't up!
  91.     !if &sequal $cbufname "Function Keys"
  92.         delete-window
  93.     !endif
  94.  
  95.     ;Bring up page 1
  96.     !if ¬ &seq $cbufname "emacs.hlp"
  97.         help
  98.         8 resize-window
  99.         add-mode "red"
  100.         beginning-of-file
  101.         2 forward-character
  102.     !endif
  103.  
  104. *rchelp
  105.  
  106.     write-message "[PgUp/PgDn] Page    [FN6] EXIT     ^G  Exit leaving page on screen"
  107.     update-screen
  108.     set %rctmp >key
  109.     !if &equ &asc %rctmp 0
  110.         set %rctmp >key
  111.         !if &seq %rctmp I
  112.             beginning-of-line
  113.             !force search-reverse "=>"
  114.             1 redraw-display
  115.             !goto rchelp
  116.         !endif
  117.         !if &seq %rctmp Q
  118.             beginning-of-line
  119.             2 forward-character
  120.             !force search-forward "=>"
  121.             1 redraw-display
  122.             !goto rchelp
  123.         !endif
  124.         !if &seq %rctmp "~@"
  125.             delete-window
  126.             !if &seq %rcfkeys TRUE
  127.                 set %rcfkeys FALSE
  128.                 execute-macro-1
  129.             !endif
  130.             write-message "[Help Exited]"
  131.             !return
  132.         !endif
  133.     !endif
  134.     !if &equ &asc %rctmp 7
  135.         next-window
  136.         set %rcfkeys FALSE
  137.         write-message "[Help Aborted]"
  138.         !return
  139.     !endif
  140.     !goto rchelp
  141. !endm
  142.  
  143. ;    toggle smooth paging mode
  144.  
  145. 3    store-macro
  146.     set $discmd FALSE
  147.     !if %rcspage
  148.         set %rcspage FALSE
  149.         set %rctmp "OFF"
  150.         bind-to-key previous-line FNH
  151.         bind-to-key next-line FNP
  152.     !else
  153.         set %rcspage TRUE
  154.         set %rctmp "ON "
  155.         bind-to-key execute-macro-5 FNH
  156.         bind-to-key execute-macro-6 FNP
  157.     !endif
  158.     set %cbuf $cbufname
  159.     set %cline $cwline
  160.     select-buffer "Function Keys"
  161.     set %rcline 4
  162.     !while &less %rcline 15
  163.  
  164.         %rcline goto-line
  165.         10 forward-character
  166.         3 delete-next-character
  167.         insert-string %rctmp
  168.         set %rcline &add %rcline 5
  169.  
  170.     !endwhile
  171.  
  172.     unmark-buffer
  173.     select-buffer %cbuf    
  174.     %cline redraw-display
  175.     set $discmd TRUE
  176.     write-message &cat &cat "[Smooth Paging " %rctmp "]"
  177. !endm
  178.  
  179. ;    Change editor mode
  180.  
  181. 4    store-macro
  182.     set %rcmode &add %rcmode 1
  183.     !if &equ %rcmode 3
  184.         set %rcmode 0
  185.     !endif
  186.  
  187.     !if %rcfkeys
  188.         save-window
  189.         1 next-window
  190.         !if &seq $cbufname "Function Keys"
  191.             add-mode "red"
  192.             !force 5 resize-window
  193.             &add × %rcmode 5 1 goto-line
  194.             1 redraw-display
  195.         !endif
  196.         restore-window
  197.         !if &sequal $cbufname "Function Keys"
  198.             next-window
  199.         !endif
  200.     !endif
  201.     !if &equ %rcmode 0
  202.         write-message "[Program MODE]"
  203.     !else
  204.         !if &equ %rcmode 1
  205.             write-message "[Wordprocessing MODE]"
  206.         !else
  207.             write-message "[Block MODE]"
  208.         !endif
  209.     !endif
  210. !endm
  211.  
  212. 5    store-macro
  213.     set %cc $target
  214.     !if &equ $cwline 1
  215.         move-window-up
  216.     !endif
  217.     set $target %cc
  218.     previous-line
  219. !endm
  220.  
  221. 6    store-macro
  222.     set %cc $target
  223.     !if &equ $cwline $wline
  224.         move-window-down
  225.     !endif
  226.     set $target %cc
  227.     next-line
  228. !endm
  229.  
  230. ;    Switch Shift-Function Key 1
  231.  
  232. 10    store-macro
  233.     !if &equ %rcmode 0
  234.         run rcdvar
  235.         !return
  236.     !endif
  237.     !if &equ %rcmode 1
  238.         end-of-line
  239.         set %rctmp $curcol
  240.         beginning-of-line
  241.         &div &sub $fillcol %rctmp 2 insert-space
  242.         beginning-of-line
  243.         !return
  244.     !endif
  245.     !if &equ %rcmode 2
  246.         !if &equ %rcltype 1
  247.             set %rcltype 2
  248.             set %rctmp "DOUBLE"
  249.         !else
  250.             set %rcltype 1
  251.             set %rctmp "SINGLE"
  252.         !endif
  253.         set %cbuf $cbufname
  254.         set %cline $cwline
  255.         select-buffer "Function Keys"
  256.         beginning-of-file
  257.         11 goto-line
  258.         47 forward-character
  259.         6 delete-next-character
  260.         insert-string %rctmp
  261.         unmark-buffer
  262.         select-buffer %cbuf    
  263.         %cline redraw-display
  264.         !return
  265.     !endif
  266. !endm
  267.  
  268. ;    Switch Shift-Function Key 2
  269.  
  270. 11    store-macro
  271.     !if &equ %rcmode 0
  272.         run showexp
  273.         !return
  274.     !endif
  275.     !if &equ %rcmode 1
  276.         !return
  277.     !endif
  278.     !if &equ %rcmode 2
  279.         !if ¬ %rcblock
  280.             run loadblock
  281.         !endif
  282.         set %bkcopy FALSE
  283.         run getblock
  284.         write-message "[Block deleted]"
  285.         !return
  286.     !endif
  287. !endm
  288.  
  289. ;    Switch Shift-Function Key 3
  290.  
  291. 12    store-macro
  292.     !if &equ %rcmode 0
  293.         next-window
  294.         !return
  295.     !endif
  296.     !if &equ %rcmode 1
  297.         fill-paragraph
  298.         !return
  299.     !endif
  300.     !if &equ %rcmode 2
  301.         !if ¬ %rcbox
  302.             run loadbox
  303.         !endif
  304.         run box2
  305.         !return
  306.     !endif
  307. !endm
  308.  
  309. ;    Switch Shift-Function Key 4
  310.  
  311. 13    store-macro
  312.     !if &equ %rcmode 0
  313.         set $debug FALSE
  314.         run tdebug
  315.         !return
  316.     !endif
  317.     !if &equ %rcmode 1
  318.         save-file
  319.         set %rcspell TRUE
  320.         write-message ~n
  321.         shell-command &cat "spell " $cfname
  322.         execute-file "scan.cmd"
  323.         delete-other-windows
  324.         !if &seq %rcfkeys TRUE
  325.             set %rcfkeys FALSE
  326.             execute-macro-1
  327.         !endif
  328.         update-screen
  329.         write-message "[Spell Check complete]"
  330.         !return
  331.     !endif
  332.     !if &equ %rcmode 2
  333.         !if ¬ %rcblock
  334.             run loadblock
  335.         !endif
  336.         set %bkcopy TRUE
  337.         run getblock
  338.         write-message "[Block copied]"
  339.         !return
  340.     !endif
  341. !endm
  342.  
  343. ;    Switch Shift-Function Key 5
  344.  
  345. 14    store-macro
  346.     !if &equ %rcmode 0
  347.         execute-buffer @"Buffer to Execute: "
  348.         !return
  349.     !endif
  350.     !if &equ %rcmode 1
  351.         !if ¬ %rcind
  352.             run loadind
  353.         !endif
  354.         run refin
  355.         !return
  356.     !endif
  357.     !if &equ %rcmode 2
  358.         !if ¬ %rcbox
  359.             run loadbox
  360.         !endif
  361.         !if &equ %rcltype 1
  362.             run line1
  363.         !else
  364.             run line2
  365.         !endif
  366.         !return
  367.     !endif
  368. !endm
  369.  
  370. ;    Switch Shift-Function Key 6
  371.  
  372. 15    store-macro
  373.     !if &equ %rcmode 0
  374.         execute-macro
  375.         !return
  376.     !endif
  377.     !if &equ %rcmode 1
  378.         write-message "[MicroSCRIBE not ready]"
  379.         !return
  380.     !endif
  381.     !if &equ %rcmode 2
  382.         !if ¬ %rcblock
  383.             run loadblock
  384.         !endif
  385.         set %bkcopy TRUE
  386.         run putblock
  387.         !return
  388.     !endif
  389. !endm
  390.  
  391. ;    Switch Shift-Function Key 7
  392.  
  393. 16    store-macro
  394.     !if &equ %rcmode 0
  395.         !if ¬ %rcind
  396.             run loadind
  397.         !endif
  398.         run rcindent
  399.         !return
  400.     !endif
  401.     !if &equ %rcmode 1
  402.         run rcswap
  403.         !return
  404.     !endif
  405.     !if &equ %rcmode 2
  406.         !if ¬ %rcbox
  407.             run loadbox
  408.         !endif
  409.         run blank
  410.         !return
  411.     !endif
  412. !endm
  413.  
  414. ;    Switch Shift-Function Key 8
  415.  
  416. 17    store-macro
  417.     !if &equ %rcmode 0
  418.         !if ¬ %rcind
  419.             run loadind
  420.         !endif
  421.         run rcundent
  422.         !return
  423.     !endif
  424.     !if &equ %rcmode 1
  425.         write-message "[MicroSCRIBE not ready]"
  426.         !return
  427.     !endif
  428.     !if &equ %rcmode 2
  429.         !if ¬ %rcblock
  430.             run loadblock
  431.         !endif
  432.         set %bkcopy FALSE
  433.         run putblock
  434.         !return
  435.     !endif
  436. !endm
  437.  
  438. ;    Switch Shift-Function Key 9
  439.  
  440. 18    store-macro
  441.     !if &equ %rcmode 0
  442.         shell-command @"DOS command: "
  443.         write-message "[Press any key to reenter MicroEMACS...]"
  444.         set %rctmp >key
  445.         !return
  446.     !endif
  447.     !if &equ %rcmode 1
  448.         count-words
  449.         !return
  450.     !endif
  451.     !if &equ %rcmode 2
  452.         !return
  453.     !endif
  454. !endm
  455.  
  456. ;    Switch Shift-Function Key 10
  457.  
  458. 19    store-macro
  459.     !if &equ %rcmode 0
  460.         i-shell
  461.         !return
  462.     !endif
  463.     !if &equ %rcmode 1
  464.         write-message "[MicroSCRIBE not ready]"
  465.         !return
  466.     !endif
  467.     !if &equ %rcmode 2
  468.         !return
  469.     !endif
  470. !endm
  471.  
  472. ;    Load up the box macros....(pretty big...)
  473.  
  474. store-procedure loadbox
  475.     execute-file "boxmac.cmd"
  476.     set %rcbox TRUE
  477. !endm
  478.  
  479. ;    Load up the indent macros
  480.  
  481. store-procedure loadind
  482.     execute-file "indent.cmd"
  483.     set %rcind TRUE
  484. !endm
  485.  
  486. ;    Load up the rectangualar macros
  487.  
  488. store-procedure loadblock
  489.     execute-file "block.cmd"
  490.     set %rcblock TRUE
  491. !endm
  492.  
  493. ;    display a variable
  494. store-procedure    rcdvar
  495.     set %rcdebug $debug
  496.     set $debug FALSE
  497.     set %rctmp @&cat &cat "Variable to display[" %rcvar "]: "
  498.     !if ¬ &seq %rctmp ""
  499.         set %rcvar %rctmp
  500.     !endif
  501.     write-message &cat &cat &cat %rcvar " = [" &ind %rcvar "]"
  502.     set $debug %rcdebug
  503. !endm
  504.  
  505. ;    Toggle debug mode
  506.  
  507. store-procedure tdebug
  508.     set %cbuf $cbufname
  509.     set %cline $cwline
  510.     select-buffer "Function Keys"
  511.     beginning-of-file
  512.     next-line
  513.     75 forward-character
  514.     set %rcdebug &equ $curchar 70
  515.     delete-previous-character
  516.     2 delete-next-character
  517.     !if %rcdebug
  518.         insert-string "ON "
  519.     !else
  520.         insert-string "OFF"
  521.     !endif
  522.     unmark-buffer
  523.     select-buffer %cbuf    
  524.     %cline redraw-display
  525.     write-message &cat &cat "[Debug Mode " %rcdebug "]"
  526.     set $debug %rcdebug
  527. !endm
  528.  
  529. ;    evaluate expresion
  530.  
  531. store-procedure showexp
  532.         delete-buffer "[temp]"
  533.         set %rcbuf $cbufname
  534.         set %cline $cwline
  535.         select-buffer "[temp]"
  536.         insert-string "set %rcval "
  537.         !force insert-string @"EXP: "
  538.         execute-buffer "[temp]"
  539.         unmark-buffer
  540.         select-buffer %rcbuf
  541.         delete-buffer "[temp]"
  542.         %cline redraw-display
  543.         write-message &cat &cat "Value = [" %rcval "]"
  544. !endm
  545.  
  546. ;    swap the word the cursor is on and it's predisesor
  547.  
  548. store-procedure rcswap
  549.     set %rctmp $search
  550.     forward-character
  551.     previous-word
  552.     0 delete-next-word
  553.     set %second $kill
  554.     insert-string "~~"
  555.     !force previous-word
  556.     !if &seq $status FALSE
  557.         set %first %second
  558.     !else
  559.         0 delete-next-word
  560.         set %first $kill
  561.         insert-string %second
  562.     !endif
  563.     search-forward "~~"
  564.     delete-previous-character
  565.     insert-string %first
  566.     previous-word
  567.     set $search %rctmp
  568. !endm
  569.  
  570. ;    Set up auto CMODE
  571.  
  572. 20    store-macro
  573.     set %rctmp &sin $cfname "."
  574.     !if &equ %rctmp 0
  575.         !return
  576.     !endif
  577.     set %rctmp &mid $cfname &add %rctmp 1 5
  578.     !if &or &seq %rctmp "c" &seq %rctmp "h"
  579.         add-mode "cmode"
  580.     !endif
  581. !endm
  582. bind-to-key execute-macro-20    M-FNR
  583.  
  584. ;    bring up the function key window
  585.  
  586.     1 split-current-window
  587.     select-buffer "Function Keys"
  588.     insert-string "f1 search->>   f2 <<-search    █ F1 display variable       F2 eval expression~n"
  589.     insert-string "f3 hunt->>     f4 <<-hunt      █ F3 next window            F4 Debug mode [OFF]~n"
  590.     insert-string "f5 Fkeys [ON ] f6 Help [OFF]   █ F5 execute buffer         F6 execute macro~n"
  591.     insert-string "f7 Spage [OFF] f8 Mode [PROG ] █ F7 indent region          F8 undent region~n"
  592.     insert-string "f9 save file  f10 exit emacs   █ F9 execute DOS command   F10 shell to DOS~n"
  593.     insert-string "f1 search->>   f2 <<-search    █ F1 center line~n"
  594.     insert-string "f3 hunt->>     f4 <<-hunt      █ F3 reformat paragraph     F4 spell check file~n"
  595.     insert-string "f5 Fkeys [ON ] f6 Help [OFF]   █ F5 ref indented paragraph F6 PREVIEW output~n"
  596.     insert-string "f7 Spage [OFF] f8 Mode [WORD ] █ F7 toggle words           F8 output DRAFT~n"
  597.     insert-string "f9 save file  f10 exit emacs   █ F9 count words           F10 output FINAL~n"
  598.     insert-string "f1 search->>   f2 <<-search    █ F1 Line type [DOUBLE]    F2 kill block~n"
  599.     insert-string "f3 hunt->>     f4 <<-hunt      █ F3 draw box              F4 copy block~n"
  600.     insert-string "f5 Fkeys [ON ] f6 Help [OFF]   █ F5 insert line           F6 yank block~n"
  601.     insert-string "f7 Spage [OFF] f8 Mode [BLOCK] █ F7 insert space          F8 insert block~n"
  602.     insert-string "f9 save file  f10 exit emacs   █ ~n"
  603.     unmark-buffer
  604.     delete-window
  605.  
  606. ;    Initialize things.....
  607.  
  608.     set %rcbox FALSE
  609.     set %rcind FALSE
  610.     set %rcblock FALSE
  611.     set %rcmode 0
  612.     set %rcfkeys FALSE
  613.     set %rcvar ""
  614.     set %rcltype 2
  615.     execute-macro-1
  616.     set $discmd TRUE
  617.